package com.test11_泛型;

import org.junit.Test;

/**
 * 泛型方法
 */
public class YootkDemo_04 {

    @Test
    public void test1() {
        Integer[] num = fun(1, 2, 3);
        for (int temp : num) {
            System.out.println(temp);
        }
    }

    @Test
    public void test2() {
        IMessage3 message = getInstrance(new CodeMessage());
        message.send();
    }

    /**
     * 泛型方法
     * 如果没有写<T>的声明，则T描述的是一个类或者接口
     */
    public static <T> T[] fun(T... args) {  // 通过外部的参数来决定最终T的类型
        return args;
    }

    public static <T> T getInstrance(Object instance) {
        return (T) instance;
    }
}

interface IMessage3 {
    public void send();
}

class CodeMessage implements IMessage3 {
    @Override
    public void send() {
        System.out.println("【CodeMessage】发送编码数据信息。");
    }
}
